Envío de mensajes a Microsoft Teams con Node-RED
Este tutorial le muestra cómo enviar notificaciones de inspección desde su cámara OV20i directamente a un canal de Microsoft Teams. Aprenderá a configurar alertas automáticas que incluyan los resultados de inspección y enlaces de imágenes clicables, manteniendo a su equipo informado de inmediato sobre el estado de la producción.
Lo que construirá: Un sistema automatizado que publique los resultados de inspección de OV20i, incluidas imágenes y el estado Aprobado/Rechazado, directamente en un canal de Microsoft Teams.
Aplicación en la vida real: Reciba notificaciones instantáneas cuando las inspecciones fallen, comparta imágenes de inspección con equipos remotos, o crea informes de calidad automatizados en su espacio de colaboración de equipo.
Prerrequisitos
- Cámara OV20i conectada a la red de su planta
- Acceso a Microsoft Teams con permiso para agregar conectores
- Canal de Teams donde desea recibir las notificaciones
- Conectividad de red entre OV20i y Microsoft Teams
- Conocimiento básico de flujos de Node-RED
Descripción general del tutorial
Lo que construiremos: Un flujo de Node-RED que envía automáticamente los resultados de inspección a Microsoft Teams con enlaces de imágenes clicables.
Tiempo estimado: 15-20 minutos
Habilidades adquiridas: Integración de webhook de Teams, solicitudes HTTP de Node-RED, sistemas de notificaciones automatizadas
Paso 1: Configurar Webhook de Microsoft Teams
1.1 Acceda a su canal de Teams
- Abra Microsoft Teams y navegue hasta el canal de notificaciones de inspección
- Haga clic en los tres puntos (•••) junto al nombre del canal
- Seleccione "Administrar canal" del menú desplegable
1.2 Agregar conector de Webhook entrante
- Haga clic en "Conectores" en el menú de administración del canal
- Busque "Incoming Webhook" en la lista de conectores
- Haga clic en "Agregar" junto a la opción Incoming Webhook
1.3 Configurar ajustes del Webhook
- Nombre: Ingrese un nombre descriptivo (p. ej., "Alerta de inspección OV20i")
- Icono: Opcionalmente cargue un icono personalizado para sus notificaciones
- Haga clic en "Crear" para generar el webhook
1.4 Guardar URL del Webhook
- Copie la URL del webhook generado; esto es crucial para la configuración de Node-RED
- Guarde la URL en un lugar seguro (la necesitará en el Paso 2)
- Haga clic en "Listo" para completar la configuración de Teams
Punto de control: Ahora debería tener una URL de webhook que se vea así: https://yourcompany.webhook.office.com/webhookb2/...
Paso 2: Acceder a Node-RED de OV20i
2.1 Abrir Node-RED
- Abra la interfaz web de OV20i
- Vaya a Editor de Recetas y haga clic en Configurar I/O o seleccione "IO Block" desde el menú de migas de pan
2.2 Preparar su área de trabajo
- Limpiar una área en el lienzo de Node-RED para su flujo de integración con Teams
- Identificar la paleta en el lado izquierdo con nodos disponibles
- Planificar su flujo: Disparador → Proceso → Enviar a Teams
Paso 3: Construir el flujo de Node-RED
3.1 Agregar nodos requeridos
Arrastre estos nodos desde la paleta a su lienzo:
- Inject node (para pruebas)
- Function node (para formatear el mensaje)
- HTTP request node (para enviar a Teams)
- Debug node (opcional, para solución de problemas)
3.2 Conectar los nodos
- Conecte la salida de Inject a la entrada de Function
- Conecte la salida de Function a la entrada de HTTP request
- Conecte la salida de HTTP request a la entrada de debug (opcional)
Flujo estructurado:
Inject → Function → HTTP Request → Debug
Paso 4: Configurar el Nodo de Función
4.1 Configuración Básica del Mensaje
- Haz doble clic en el nodo de función para abrir la configuración
- Reemplace el código predeterminado con este formato de mensaje básico:
// Basic Teams message
msg.headers = {
"Content-Type": "application/json"
};
msg.payload = {
text: "You got a new message from your OV20i"
};
return msg;
4.2 Mensaje Avanzado con Enlaces de Imagen
Para resultados de inspección dinámicos con imágenes clicables:
// Dynamic message with inspection image
let imageUrl = msg.payload.image_url;
msg.headers = {
"Content-Type": "application/json"
};
msg.payload = {
text: `Inspection Complete - [View Image](${imageUrl})`
};
return msg;
4.3 Notificación de Inspección Completa
Para detalles completos de la inspección:
// Complete inspection notification
const inspectionData = msg.payload;
const imageUrl = inspectionData.image_url;
const result = inspectionData.result ? "PASS" : "FAIL";
const timestamp = new Date().toLocaleString();
msg.headers = {
"Content-Type": "application/json"
};
msg.payload = {
text: `🔍 **Inspection ${result}** - ${timestamp}\n\n[View Image](${imageUrl})`
};
return msg;
4.4 Guardar la Configuración de la Función
- Haz clic en "Done" para guardar el nodo de función
- Asigne un nombre descriptivo al nodo, por ejemplo "Format Teams Message"
Paso 5: Configurar el Nodo de Solicitud HTTP
5.1 Configurar la Solicitud HTTP
- Haz doble clic en el nodo de solicitud HTTP para configurarlo
- Configurar Método: Seleccione "POST" desde el menú desplegable
- Configurar URL: Pegue su URL de webhook de Teams desde el Paso 1.4
- Configurar Retorno: Seleccione "UTF-8 string"
5.2 Configuraciones Adicionales
- Nombre: Ingrese "Send to Teams" para mayor claridad
- Encabezados: Deje vacío (manejado por el nodo de función)
- Payload: Deje en "Ignore" (manejado por el nodo de función)
5.3 Guardar la Configuración HTTP
- Haga clic en "Done" para guardar el nodo de solicitud HTTP
- Verifique la URL de webhook para confirmar que es correcta - esto es crucial para el éxito
Paso 6: Probar la Integración
6.1 Desplegar el Flujo
- Haga clic en el botón "Deploy" en la esquina superior derecha
- Espere la confirmación "Successfully deployed"
- Verifique si hay indicadores de error en los nodos (triángulos rojos)
6.2 Probar con el Nodo Inject
- Haga clic en el botón en el lado izquierdo del nodo inject
- Verifique el panel de depuración (barra lateral derecha) para mensajes de error
- Verifique que el mensaje aparezca en su canal de Teams
6.3 Verificar la Notificación de Teams
- Cambie a Microsoft Teams y verifique su canal de destino
- Busque el mensaje de prueba de su OV20i
- Pruebe cualquier enlace clicable para garantizar que funcionen correctamente
Paso 7: Integración con el Flujo de Inspección
7.1 Conectar con Resultados de Inspección
Para enviar notificaciones automáticas después de cada inspección:
- Encuentre su flujo de inspección principal (normalmente empieza con "All Block Outputs")
- Agregue su notificación de Teams como una rama desde el flujo principal
- Conecte después del procesamiento de la inspección pero antes de los resultados finales
7.2 Flujo de Integración de Ejemplo
All Block Outputs → [Inspection Logic] → Final Pass/Fail
↓
Format Teams Message → Send to Teams
7.3 Filtrado de Notificaciones (Opcional)
Para enviar notificaciones únicamente para inspecciones fallidas:
// Only send notifications for failures
const inspectionResult = msg.payload.result;
if (!inspectionResult) { // Only if inspection failed
const imageUrl = msg.payload.image_url;
msg.headers = {
"Content-Type": "application/json"
};
msg.payload = {
text: `⚠️ **INSPECTION FAILED** - Immediate attention required\n\n[View Failed Image](${imageUrl})`
};
return msg;
} else {
return null; // Don't send message for passing inspections
}
Paso 8: Solución de Problemas
8.1 Problemas Comunes
| Problema | Síntomas | Solución |
|---|---|---|
| Sin mensaje en Teams | La depuración muestra éxito pero no hay notificación de Teams | Verifique la URL del webhook y la conectividad de la red |
| Error HTTP 400 | Error de solicitud en la depuración | Verifique el formato del mensaje, asegúrese del encabezado Content-Type |
| Enlaces de imágenes no funcionan | El mensaje aparece pero las imágenes no se abren | Verifique que la URL de la imagen sea accesible desde la red de los usuarios de Teams |
| El flujo no se activa | No hay salida de depuración cuando se espera | Verifique las conexiones del flujo, verifique las condiciones de disparo |
8.2 Depure su Flujo
- Agregar nodos de depuración después de cada paso para rastrear el flujo de datos
- Verifique el panel de depuración para mensajes de error y la estructura de datos
- Pruebe con un nodo de inyección para aislar problemas de configuración
- Verifique la URL del webhook realizando pruebas con herramientas externas si es necesario
8.3 Conectividad de Red
- Asegúrese de que OV20i pueda acceder a Internet (prueba de ping desde la cámara)
- Verifique la configuración del firewall que podría bloquear HTTPS saliente
- Verifique la resolución DNS para las URL de webhook de Teams
- Pruebe desde un navegador en la misma red que la cámara
¡Éxito! La integración con Teams está completa
Ahora su cámara OV20i puede:
✅ Enviar notificaciones automáticas a canales de Microsoft Teams
✅ Incluir enlaces de imágenes clicables para revisión inmediata de la inspección
✅ Filtrar notificaciones en función de los resultados de la inspección
✅ Proporcionar formato enriquecido con detalles de la inspección y las marcas de tiempo
✅ Soportar múltiples canales para diferentes tipos de notificaciones
Mejores Prácticas
Gestión de Mensajes
- Usar nombres de canal descriptivos para diferentes tipos de notificaciones
- Incluir marcas de tiempo e identificadores de estación en los mensajes
- Filtrar mensajes para evitar la sobrecarga de notificaciones
- Probar a fondo antes de la implementación en producción
Consideraciones de Seguridad
- Proteger las URL de webhook; trátelas como credenciales sensibles
- Usar HTTPS para todas las comunicaciones (por defecto con Teams)
- Limitar el acceso de red a solo los servicios necesarios
- Rotar regularmente las URL de webhook si se ven comprometidas
Optimización del Rendimiento
- Notificaciones por lotes si se envían muchos mensajes
- Utilizar lógica de reintento adecuada ante fallas de red
- Monitorear las tasas de entrega de mensajes
- Implementar limitación de velocidad para evitar los límites de la API de Teams

Siguientes Pasos
Después de configurar la integración con Teams:
- Crear diferentes canales de notificación para varios tipos de inspección
- Configurar flujos de escalamiento para fallas críticas
- Integrar con otras herramientas del equipo (correo electrónico, SMS, etc.)
- Construir paneles que combinen Teams con otras herramientas de monitoreo
- Capacitar a su equipo para responder a notificaciones automatizadas